package com.rockontrol.ele.service;

import java.util.List;

import com.rockontrol.ele.pojo.Ma印刷品;
import com.rockontrol.ele.pojo.Ma回收单;
import com.rockontrol.ele.pojo.Ma材料加工单;
import com.rockontrol.ele.pojo.Ma移交单;
import com.rockontrol.ele.pojo.Ma综合物品;
import com.rockontrol.ele.vo.MaApplianceCdt;
import com.rockontrol.ele.vo.MaRecoverCdt;
import com.rockontrol.ele.vo.MaTransferCdt;
import com.rockontrol.ele.vo.MaterialMachiningCdt;
import com.rockontrol.ele.vo.MaterialMachiningSummarizingCdt;
import com.rockontrol.ele.vo.MaterialStatistics;
import com.rockontrol.ele.vo.MaterialStatisticsCdt;
import com.rockontrol.ele.vo.PrintPaperCdt;
import com.rockontrol.ele.vo.SummarizingMaterialMachiningCdt;

/**
 * 物资其他相关数据服务封装类。提供：材料加工等服务，对基础通用服务外的业务扩展进行支持
 * @author yangfan
 *
 */
public interface MaOtherSvc{
    
    /**
     * 创建一个材料加工单记录
     * @param mm_
     * @return String材料加工单OID,    NULL 空
     */
    public String createTheMaterialMachining (Ma材料加工单 mm_);
    
    /**
     * 获取一个材料加工单信息及加工单明细信息
     * @param id_
     * @return MA材料加工单 材料加工单, NULL 失败
     */
    public Ma材料加工单 getTheMaterialMachining (String id_);
    
    /**
     * 根据材料配件需求计划查询条件获取分页材料配额件需求计划集
     * @param cdt_
     * @param roll_
     * @return String 更改后的分页对象
     */
    public String pageInitGetMaterialMachinings (MaterialMachiningCdt cdt_, String roll_);
    
    /**
     * 指定页获取材料加工单集
     * @param roll_
     * @param num_
     * @return String 更改后的分页对象
     */
    public String pageNumMaterialMachinings(String roll_, Integer num_);
    
    /**
     * 删除一个材料加工单记录信息以及该加工单号下的加工单明细及加工单文档
     * @param id_
     * @return True 成功,   False 失败
     */
    public Boolean deleteTheMaterialMachining (String id_);
    
    /**
     * 修改一个材料加工单记录包含明细信息
     * @param mm_
     * @return True 成功,   False 失败
     */
    public Boolean updateTheMaterialMachining (Ma材料加工单 mm_);
    
    /**
     * 创建一个加工汇总单
     * @param mm_
     * @param cdt_
     * @return MA材料加工单 材料加工汇总单,   NULL 失败
     */
    public Ma材料加工单 createTheSummarizingMaterialMachining (Ma材料加工单 mm_ , MaterialMachiningSummarizingCdt cdt_);
    
    /**
     * 删除一个材料加工汇总单记录信息以及该加工汇总单号下的汇总明细
     * @param id_
     * @return True 成功,   False 失败
     */
    public Boolean deleteTheSummarizingMaterialMachining (String id_);
    
    /**
     * 获取一个材料加工汇总单信息及汇总单明细信息
     * @param id_
     * @return MA材料加工单 材料加工单, NULL 失败
     */
    public Ma材料加工单 getTheSummarizingMaterialMachining (String id_);
    
    /**
     * 从加工单获取资源，构成汇总加工单的基础数据
     * @param cdt_
     * @return List<MA材料加工单> 材料加工单集
     */
    public List<Ma材料加工单> getMaterialSummarizingMachinings(SummarizingMaterialMachiningCdt cdt_);
    
    public String pageInitGetMaterialSummarizingMachinings(SummarizingMaterialMachiningCdt cdt_,String roll_);
    
    /**
     * 从加工单获取资源，查询材料加工统计数据集
     * @param cdt_
     * @return List<MaterialStatistics> 材料加工统计数据集
     */
    public String getMaterialStatisticses(MaterialStatisticsCdt cdt_,String roll);
    
    /**
     * 创建办公用品回收单
     * @param er_
     * @return String 回收单ID,  NULL 失败
     */
    public String createApplianceRecover(Ma回收单 er_);
    
    /**
     * 
     * 根据回收单ID获取办公用品回收单
     * @param id_
     * @return Ma物资回收单回收单对象,  NULL 失败
     */
    public Ma回收单 getApplianceRecover(String id_);
    
    /**
     * 根据查询条件获取办公用品回收单集
     * @param op_
     * @return List<Ma物资回收单> 回收单对象集,  NULL 失败
     */
    public List<Ma回收单> getApplianceRecovers(MaRecoverCdt op_);
    public String pageInitGetApplianceRecovers(MaRecoverCdt op_,String roll_);
    
    /**
     * 修改设备回收单
     * @param er_
     * @return True 成功,   False 失败
     */
    public Boolean updateApplianceRecover(Ma回收单 er_);
    
    /**
     * 删除办公用品回收单
     * @param id_
     * @return True 成功,   False 失败
     */
    public Boolean deleteApplianceRecover(String id_);
    
    /**
     * 创建办公用品移交单
     * @param et_
     * @return String 移交单ID,  NULL 失败
     */
    public String createApplianceTransfer(Ma移交单 et_);
    
    /**
     * 根据移交ID获取设备移交信息
     * @param id_
     * @return Ma移交单 移交单, NULL 失败
     */
    public Ma移交单 getApplianceTransfer(String id_);
    
    /**
     * 根据移交单查询条件获取办公用品移交信息集
     * @param op_
     * @return List<Ma移交单> 移交单集,  NULL 失败
     */
    public List<Ma移交单> getApplianceTransfers(MaTransferCdt op_);
    public String pageInitGetApplianceTransfers(MaTransferCdt op_,String roll_);
    
    /**
     * 修改办公用品移交单
     * @param et_
     * @return True 成功,   False 失败
     */
    public Boolean updateggTransfer(Ma移交单 et_);
    
    /**
     * 根据移交单ID删除办公用品移交单
     * @param id_
     * @return True 成功,   False 失败
     */
    public Boolean deleteApplianceTransfer(String id_);
    
    /**
     * 创建印刷品信息
     * @param pp_
     * @return String 印刷品id,  NULL 失败
     */
    public String createPrintPaper(Ma印刷品 pp_);
    
    /**
     * 根据id查询印刷品信息
     * @param id_
     * @return Ma印刷品 印刷品, NULL 失败
     */
    public Ma印刷品 getPrintPaper(String id_);
    
    /**
     * 根据查询条件查询印刷品信息
     * @param opt_
     * @return List<Ma印刷品> 印刷品记录集, NULL 失败
     */
    public List<Ma印刷品> getPrintPapers(PrintPaperCdt opt_);
    public String pageInitGetPrintPapers(PrintPaperCdt opt_,String roll_);
    
    /**
     * 修改印刷品信息
     * @param pp_
     * @return True 成功,   False 失败
     */
    public Boolean updatePrintPaper(Ma印刷品 pp_);
    
    /**
     * 删除印刷品信息
     * @param id_
     * @return True 成功,   False 失败
     */
    public Boolean deletePrintPaper(String id_);
    public Ma印刷品 getPrintPaperByBindId(String bindid);
    
    /**
     * 综合物品台帐信息
     * @param th_
     * @return
     */
    public String createApplianceThings(Ma综合物品 th_);
    public Boolean updateApplianceThings(Ma综合物品 th_);
    public Boolean deleteApplianceThings(String id_);
    public List<Ma综合物品> getApplianceThings(MaApplianceCdt cdt);
    public Ma综合物品 getApplianceThingsById(String id_);
    public String pageInitApplianceThings(MaApplianceCdt opt_,String roll_); 
    public String getThingsCodeByType(String typeid,String modelid);
    
    public String pageNumMaOther(String roll_,Integer num_);
    
    /**
     * 在委托加工确定后修改库存
     * @param oisr_
     * @return
     */
    public Boolean serviceUpdateCount(Ma材料加工单 oisr_);
}
